package com.example.cdctest.service;

import com.example.cdctest.pojo.Education;
import com.example.cdctest.pojo.Post;
import com.example.cdctest.pojo.TestPaper;
import com.example.cdctest.pojo.UserInfo;
import com.github.pagehelper.PageInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.Date;
import java.util.List;

public interface UserInfoService extends CommonService<UserInfo>{
    UserInfo login(UserInfo userInfo);
    UserInfo isEmail(UserInfo userInfo);
    UserInfo selectUserByEmail(String email);
    void updateUserInfo(UserInfo userInfo);

    //通过搜索条件，查出搜索到的数据(用户状态，起始日期，截止日期，搜索用户的条件，点击的页码)
    PageInfo<UserInfo> findAllUserInfo(Integer tai, Date logmin, Date logmax, String text, Integer pageNum, Integer pageSize);

    //通过搜索条件，查出搜索到的数据的条数(用户状态，起始日期，截止日期，搜索用户的条件，点击的页码)
    Integer getUserInfoCount(Integer tai, Date logmin, Date logmax, String text, Integer pageNum,Integer pageSize);

    //审核用户
    void updateUserStatus(Integer id, Integer userState);

    //禁用或者启用用户
    void updateUser(Integer id);

    //根据用户的id,获取用户的所有考试信息
    List<TestPaper> selectUserTestPapers(Integer userId);

    //根据用户的id,获取用户的所有考试信息数量
    Integer getUserTestPaperCount(Integer userId);

    //从excel表格中批量导入数据
    Boolean userInfoExcel(String fileName, MultipartFile file) throws Exception;

    //取出所有的内测用户
    List<UserInfo> selectFormalUser();

    //添加考试人员，通过用户Id以及考试id
    void insertSelectUser(String[] ids, Integer examinationId);

    //从数据库取出岗位信息,并转到岗位管理界面
    List<Post> findAllPost();

    //从数据库取出学历信息,并转到学历管理界面
    List<Education> findAllEducation();

    //添加岗位信息
    Integer addPost(Post post);

    //修改岗位的状态信息
    void updatePostEnable(Integer id);

    //修改岗位排序
    void updatePostSort(Post post);

    //添加学历信息
    Integer addEducation(Education education);

    //修改岗位的状态信息
    void updateEducationEnable(Integer id);

    //修改学历排序
    void updateEducationSort(Education education);

    //申请为内测用户
    void updateVipUser(Integer id);
}

